#include <iostream>
#include <stdio.h>
#include <queue>
#include <vector>
using namespace std;
typedef long long LL;
vector<int> v;
int main() {
    string s;
    int n,m;
    cin>>n>>m;
    cin>>s;
    int len=s.length();
    int pre=0;
    while (s[pre]=='b') ++pre;
    if (pre==n) cout<<0<<endl;
    else {
        int cnt=0;
        for (int i=pre; i<len; ++i) {
            if (i==0 || s[i]!=s[i-1]) {
                if (cnt!=0) v.push_back(cnt);
                cnt=1;
            }
            else {
                ++cnt;
            }
        }
        len=v.size();
        int k=(len-m)/2;
        for (int i=0; i<2*k; ++i) {
            if (i%2==0) cnt1+=v[i], q1.push(v[i]), q3.push(v[i]);
            else cnt2+=v[i], q2.push(v[i]);
        }
        cnt3=cnt1;
        if (v[2*k]<q3.top()) cnt3=cnt3-q3.top()+v[2*k], q3.pop(), q3.push(v[2*k]);
        for (int i=2*k+1; i<len; ++i) {
            if (q1.top() > q2.top() && q1.top() > v[i]) {
                cnt1=cnt1-q1.top()+v[i]; q1.pop(); q1.push(v[i]);
                swap(q1,q2); swap(cnt1, cnt2);
                swap(q2,q3); swap(cnt2, cnt3);
            }
            else if (q2.top() > v[i]) {
                cnt2=cnt2-q2.top()+v[i]; q2.pop(); q2.push(v[i]);
                swap(q2, q3); swap(cnt2, cnt3);
            }

        }
    }
    return 0;
}
